﻿using System;
using System.Collections.Generic;
using System.Web;
using System.IO;
using System.Configuration;

namespace DataLib.Common
{
    public class Log2
    {
        //在网站根目录下创建日志目录
        public static int LOG_LEVENL = 3;


        /// <summary>
        /// 得到web.config里配置项的数据库连接字符串。
        /// </summary>
        /// <param name="configName"></param>
        /// <returns></returns>
        public static string GetLogPath()
        {
            string LogsRootPath = ConfigurationManager.AppSettings["LogsRootPath"];
            return LogsRootPath;
        }
        /**
         * 向日志文件写入调试信息
         * @param className 类名
         * @param content 写入内容
         */
        public static void Debug(string className, string content)
        {
            if(LOG_LEVENL >= 3)
            {
                WriteLog("\nDEBUG", className, content);
            }
        }

        /**
        * 向日志文件写入运行时信息
        * @param className 类名
        * @param content 写入内容
        */
        public static void Info(string className, string content)
        {
            if (LOG_LEVENL >= 2)
            {
                WriteLog("\nINFO", className, content);
            }
        }

        /**
        * 向日志文件写入出错信息
        * @param className 类名
        * @param content 写入内容
        */
        public static void Error(string className, string content)
        {
            if(LOG_LEVENL >= 1)
            {
                WriteLog("\nERROR", className, content);
            }
        }

        /**
        * 向日志文件写入出错信息
        * @param className 类名
        * @param content 写入内容
        */
        //public static void Error(string className, string content)
        //{
        //    if(LOG_LEVENL >= 1)
        //    {
        //        WriteLog("\nERROR", className, content);
        //    }
        //}

        /**
         * 实际的写日志操作
         * @param type 日志级别
         * @param content 写入详细内容
         * @param funtype 方法功能说明
        */
        private static void WriteLog(string logstype,string content, string funtype)
        {
            string subpath = DateTime.Now.ToString("yyyyMMdd");
            string path = GetLogPath();
            if (!Directory.Exists( path+ "/" + subpath))//如果日志目录不存在就创建
            {
                Directory.CreateDirectory(path);
            }

            string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");//获取当前系统时间
            string filename = path + "/" + funtype + ".log";//用日期对日志文件命名

            //创建或打开日志文件，向日志文件末尾追加记录
            StreamWriter mySw = File.AppendText(filename);

            //向日志文件写入内容
            string write_content = "操作时间：" + time + "\n\t操作内容: " + content;
            mySw.WriteLine(write_content);

            //关闭日志文件
            mySw.Close();
        }
    }
}